package cn.web.web_module.service;

import cn.itcast.pojo.role;
import cn.itcast.util.ResponseEntity;
import cn.web.web_module.entity.WebModule;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * (WebModule)表服务接口
 *
 * @author 小松
 * @since 2020-06-19 08:55:58
 */
public interface WebModuleService {

    /**
     * 通过ID查询单条数据
     *
     * @param moduleId 主键
     * @return 实例对象
     */
    WebModule queryById(Integer moduleId);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<WebModule> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param webModule 实例对象
     * @return 实例对象
     */
    WebModule insert(WebModule webModule);

    /**
     * 修改数据
     *
     * @param webModule 实例对象
     * @return 实例对象
     */
    WebModule update(WebModule webModule);

    /**
     * 通过主键删除数据
     *
     * @param moduleId 主键
     * @return 是否成功
     */
    boolean deleteById(Integer moduleId);


    /**
     *
     * @Description:
     * 接收一个role信息,返回相应权限的module
     * @auther: 张松
     * @date: 10:07 2020/6/19
     * @param: [role]
     * @return: java.lang.String
     *
     */
    ArrayList<WebModule> getModule(String role);


    /**
     *
     * @Description: 查找全部的角色对应的前端展示权限
     *
     * @auther: 张松
     * @date: 8:40 2020/7/29
     * @param: []
     * @return: cn.itcast.util.ResponseEntity
     *
     */
    Map<String,Object> getAllRoleModule();


    /**
     *
     * @Description: 查找全部的前端显示module
     *
     * @auther: 张松
     * @date: 15:24 2020/7/28
     * @param: []
     * @return: java.util.ArrayList<cn.web.web_module.entity.WebModule>
     *
     */
    List<WebModule> selectAllModule();


    /**
     *
     * @Description: 删除角色
     *
     * @auther: 张松
     * @date: 11:17 2020/7/29
     * @param: [roleId]
     * @return: cn.itcast.util.ResponseEntity
     *
     */
    ResponseEntity deleteRole(Integer roleId);


    /**
     *
     * @Description: 修改管理员权限
     *
     * @auther: 张松
     * @date: 18:21 2020/7/29
     * @param: [roleId, moduleId]
     * @return: cn.itcast.util.ResponseEntity
     *
     */
    public int updataRoleModule(Integer roleId,ArrayList<Integer> moduleId);
}